package com.audaque.springboot.foshanupload.web.servletdemo.controller.redirect;

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 Web组件之间的跳转:web组件(Servlet/JSP/Filter/Listener),将一个完整的功能由多个web组件配置完成
 * */
@WebServlet("/redirect/a")
public class AServlet extends HttpServlet{
	private static final long serialVersionUID = 4993112101987329614L;

	@Override
	protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		System.out.println("---before---a");
		PrintWriter out=resp.getWriter();
		out.print("---before---a");

		//http://localhost/forward_redirect_scope_jsp/redirect/a?name=123
		//请求转发的特点:2.既然是2次请求,那么可以在这之间的web组件中不共享数据
		System.out.println("a---"+req.getParameter("name"));
		//设置属性来实现共享
		req.getSession().setAttribute("USER_IN_SESSION", "china");
		//跳转
		//2.URL重定向（redirect）:能访问其他项目的资源，相当于直接在主机地址拼接上下文路径/资源名称
		//URL重定向的特点:1.整个有两次请求
	  	resp.sendRedirect("/forward_redirect_scope_jsp/redirect/b");//参数:location,指定要跳转到的资源路径(上下文路径/资源名称 ）
		//URL重定向的特点:4.不可以访问WEB-INF中的资源
		//resp.sendRedirect("//forward_redirect_scope_jsp/WEB-INF/login.html");//参数:path,指定要跳转到的资源路径
		//URL重定向的特点:5.能跨域访问
		//resp.sendRedirect("https://www.baidu.com");//参数:path,指定要跳转到的资源路径

  		System.out.println("---after---a");
		out.print("---after---a");

	}
}
